// 导入service模块
const {Service} = require('egg');

// 创建服务类
class UserService extends Service{
    // 用户登录验证，查询用户是否存在
    async userCheck(userInfo){
        const {ctx} = this;
        try{
            const user = await ctx.app.model.User.findOne({
                where:{
                 email:userInfo.email,
                 password:userInfo.password
                }
             })
             // 如果查询到该用户
             return user ? user : false ;
        }catch(e){
            throw new Error(e)
        }
    }

    // 用户创建
    async createUser(user){
        const {ctx} = this;
        try{
            // 由前端判断完是否符合规则，符合规则则传入到后端
            const result = await ctx.app.model.User.create(user)
            return result;
        }catch(e){
            throw new Error(e)
        }
    }

    // 通过用户id查询用户信息
    async getUserInfo(id){
        const {ctx} = this;
        try{
            // 查询用户信息
            const result = await ctx.app.model.User.findOne({
                where:{
                    id
                }
            })
            return result;
        }catch(e){
            return false
        }
    }

    // 通过email查询是否有该用户
    async checkEmail(email){
        const {ctx} = this;
        try{
            // 查询用户信息
            const result = await ctx.app.model.User.findOne({
                where:{
                    email
                }
            })
            return result;
        }catch(e){
            return false
        }
    }

    // 通过用户id修改用户信息
    async modifyUserInfo(id,payload){
        const {ctx} = this;
        try{
            // 通过id查询用户并修改
            const res = await ctx.app.model.User.update(payload,{where:{id}})
            return res*1;
        }catch(e){
            return false;
        }
    }
}

// 导出服务类
module.exports = UserService;